The present invention is generally related to the field of object-oriented business process development and specifically discloses a system for visually customizing interfaces for business objects to achieve interoperability between disparate computer systems.
In the prior art, it is well known to take an object-oriented approach towards developing software systems and programs. Objects have been used to encapsulate blocks of codes in order to provide robust, reusable components for building software programs. In this paradigm, an object has specific state conditions, which are stored as attributes. A xe2x80x9cpersonxe2x80x9d-type object, for example, could feature a person""s xe2x80x9cnamexe2x80x9d, xe2x80x9caddressxe2x80x9d and xe2x80x9cfax numberxe2x80x9dxe2x80x94the object""s attributes. Since these attributes are hidden inside the object (the xe2x80x9cblack boxxe2x80x9d concept), the user cannot simply access and change them from the outside. In the real world, objects exhibit specific behavior which defines how objects interact. This behavior is implemented as the xe2x80x9cmethodsxe2x80x9d of the object. For example, the behavior associated with the example given could be xe2x80x9cmodify the addressxe2x80x9d or xe2x80x9cchange the fax number.xe2x80x9d Both of these methods access and change the attributes of the xe2x80x9cpersonxe2x80x9dxe2x80x94type object. The whole set of methods associated with an object collectively characterize an object""s behavior to the outside world; for the purposes of this patent application, this set of methods is called the business object""s xe2x80x9cinterface.xe2x80x9d In order to access this object or xe2x80x9cblack box,xe2x80x9d the user need only have information about the interface and not the inner workings of the object itself.
It has been known in the prior art to apply the object-oriented approach towards developing business processes. Due to the characteristics described above, objects can be used very successfully to describe the business content of applications such as xe2x80x9csales orders,xe2x80x9d xe2x80x9cfacilities,xe2x80x9d and xe2x80x9ccustomers.xe2x80x9d Large and comprehensive software products can be structured internally by using business objects such that the benefits of object-orientation are introduced into the core information processing of business organizations. This approach allows for component-based technology which provides companies with a reliable means of implementing new functionalities smoothly and quickly. New components can work with existing components in an integrated solution. Such a solution can be easily expanded to take into account user-specific functionality because the interfaces of these components can also be used by specific components created by the user to interface with the existing object-based software system.
By providing an integrated view of the attributes, methods, and events associated with the fundamental building blocks of business, business objects offer a high-level interface for exchanging information among business software systems. This type of implementation will allow users to reuse functionality defined elsewhere for a different purpose. New emerging object standards like COM/DCOM and the CORBA standard of the Object Management Group allow business objects to co-exist in a loosely coupled, multi-platform and multi-standard environment. Business software which attempt to leverage this type of interoperability can achieve seamless integration with countless other software systems implementing these standards.
In the prior art, there are several well-known application interfaces which are used to achieve interoperability between various systems. Business Application Programming Interfaces (BAPI interfaces) from SAP AG of Walldorf, Germany, are well known and widely used forms of interfacing. BAPI interfaces enable customers and third parties to integrate their software components with the Enterprise Resources Planning software offering from SAP AG, the R/3 system. BAPI interfaces are methods of SAP Business Objects.
In the prior art, the methods that belong to each object have been manually defined. A business object interface usually contains multiple methods, each of which has many parameters and fields with their own data types. Programming this type of interface can become quite challenging with the large quantities of parameters and fields. First of all, developers need to remember the names of the many parameters and their data types. Second, although many parameters or table fields can be assigned with constant or default values in most application scenarios, developers still have to manually input these values into the code. Programming these parameters can be very time consuming and susceptible to simple errors in formatting. One of the most common solutions provided in the prior art was to generate code for all the parameters. However, this solution still forced the programmer to remember the parameter and field names and still resulted in a large amount of written code which was unused. Another solution was to build a component that encapsulated the default parameters and their values and thereby present a small, easy-to-program interface. This solution facilitated use by the end users, but the original developer still had to construct the component. Accordingly, what is needed is an interface development tool which does not require preconstruction of components, memorization of parameters, fields, and their associated data types, or the manual programming of constant values into the underlying code.
The present invention provides a hardware environment enabling a developer to customize the interface to the business object. A smart code generator or a runtime environment is required to support this invention in order to generate the resulting code of the customized methods which comprise the interface. During development of an application program which needs to access the business objects, the user customizes the interfaces of the business objects such that the application program has the necessary and proper access to the business objects. A graphical user interface is provided which displays all of the business objects available to the system in a menu-driven format. The user selects the business object whose interface needs to be customized. Upon this selection, a comprehensive list of methods which are available to the business object is displayed. The user then selects the particular method which needs to be used by the application program under development. Upon selection of the method, a comprehensive list of parameters which are available to that business object are then displayed. The user then selects the parameters which are needed for the application program to interface with the business object. The end goal is to allow the user to select only the methods and parameters which he intends to use in the application program.
The present invention further allows the user to set default or constant field values for parameters which will not change throughout the life of the application program. These constant values should be set for the business object so that the application program does not have to initialize the corresponding parameters and fields.
Upon customization of the interface, the present invention utilizes a back-end system to generate the base code such that the user only has to program the selected parameters and fields. Code generation provides a very specific implementation based on the customization by generating the code underlying each method together with the customization that has occurred. All the default value assignments will be part of the generated implementation, and only the selected parameters will be available for programming. The programming interface can be much smaller since only the relevant code is generated to fulfill the complete implementations.
Therefore, it is an object of the present invention to allow developers to customize the interface visually.
It is a further object of the present invention to automatically generate code from the selected methods and parameters in order to eliminate the manual coding effort.
It is another object of the present invention to provide a menu-driven graphical interface to display all of the business objects, their associated methods, and the parameters associated with each method so that only relevant parameters will be available in the programming environment.